The present invention relates to computer networking and, more particularly, to a universal serial bus (USB) hub device that is compatible with dual-role compatible devices such as USB On-the-Go (OTG) devices.
A common host-device protocol is the universal serial bus (USB) protocol. USB is a high speed serial bus that supports devices such as keyboards, printers, scanners, pointing devices, personal data assistants (PDA""s) and cellular telephones. USB has become a standard within the computer industry as this protocol affords networking of multiple devices with minimal connections and user friendliness.
In a typical USB architecture, two or more devices are interconnected for communication. These devices are generally referred to as USB devices, which are defined by hardware and software components within the USB device. Generally, there are one or more USB devices that are defined as peripheral or xe2x80x9cslavexe2x80x9d devices, which may be input or output devices. Examples of typical peripherals include printers, modems, scanners or any other devices that exchange data with a host computer (or xe2x80x9cmasterxe2x80x9d device). The peripheral devices may be connected directly to a host or connected via a USB hub. Transactions occur between the peripherals and the host. The host controls the transactions between the peripheral devices and the host. Typically, the host controls the transactions according to the requirements of the USB 2.0 specification.
After the initial USB 2.0 specification was written, it was recognized that many peripheral devices, particularly portable devices, would benefit from being able to communicate directly with each other over the USB interface. However, since USB communication can only take place between a host (usually a personal computer) and a peripheral device, in order to qualify as a host, a device must take on several characteristics including storage for a large number of device drivers, the ability to source a large current and a series xe2x80x9cA-typexe2x80x9d host connector receptacle. It is not practical, however, for portable devices to have all of these characteristics. Moreover, in many cases these characteristics are not necessary in order to interface portable devices with each other. Accordingly, a supplement to the USB 2.0 specification was developed to enable peer-to-peer communication without the use of a personal computer or traditional host device. This supplement is commonly referred to as xe2x80x9cOn-the-Goxe2x80x9d (OTG). Hence, On-the-Go (OTG) peripherals are classified as dual role devices (DRD""s) that are able to operate as either a host controller or as a peripheral device dependent on the particular use the device is undergoing at a specific time. The devices are able to exchange the host controller functionality using a protocol device in the OTG supplement to the USB 2.0 specification. Additionally, the OTG supplement includes assurance that when these peripheral devices are attached to a standard host (i.e., a personal computer) the devices are only able to operate as peripherals.
Within the USB OTG supplement, operation between two peripheral devices is defined. Specifically, definitions sufficient to support this operation are included for aspects of host negotiation protocol (HNP) and the actions of transferring the host capability between two communicating devices. These devices are described as the xe2x80x9cA-devicexe2x80x9d and the xe2x80x9cB-devicexe2x80x9d and are determined based on which end of the connecting USB cable is attached to the device. According to the OTG supplement, the xe2x80x9cA-devicexe2x80x9d starts out as the host in all transactions and always provides bus power (Vbus). This protocol and operation, however, does not support transfer of host functionality when more than two devices are used in a system.
Typically in USB, multiple devices may be attached using multiple USB ports on one device or by using a USB hub. However, in a system that would involve a hub where multiple OTG devices (as well as non-OTG devices) are attached, any of the OTG devices may desire to be the host of the system at various times using the resources of the other devices connected to the hub. Current USB hubs, however, do not support the transfer of the host functionality because typical hub structures are configured to have a single host connection that is fanned out to multiple device connections. Thus, a conventional USB hub is unable to change which port is the host port and participate in signaling required to support OTG host transfer protocol.